do you take number theory classes for competitive programming